package com.example.web.serviceImpl;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Service;

import com.example.web.entity.Order;
import com.example.web.service.OrderService;
import com.example.web.serviceImpl.startupListener.OrderEnvent;
/**
 * 	设计模式 事件机制中的观察者模式
 * 
 * 	对方法的增强有很多方法
 * 		aop
 * 		动态代理
 * 		事件通知
 * 	这里就是用的事件通知来实现方法的增强
 * @author yzl
 *
 */
@Service
public class OrderServiceImpl implements OrderService {

	@Autowired
	ApplicationContext applicationContext;
	
	@Override
	public int save(Order order) {

		// 1---订单的创建----存如数据
		//
		System.out.println("创建订单，恭喜【xxxx】获取xxx礼物");
		// 2----发送短信通知
		// 3----发送微信通知
		applicationContext.publishEvent(new OrderEnvent(order));
		return 0;
	}

}
